<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<%@ include file="/WEB-INF/jsp/common/meta.jsp"%>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>工作流相关demo</title>
</head>
<body>
    <div class="easyui-layout" fit=true>
        <div data-options="region:'center',title:'工作流相关demo',border:false" style="padding: 0px; ">
            <div style="width: 900px;margin: 10px;border: 1px solid;">
              <strong>demo内容：</strong>流程发起、追踪<br/>
              <strong>适 用 场 景：</strong>流程业务<br/>
              <strong>使 用 说 明：</strong>
              	1、预先发布流程（通过hbpm-admin或工程启动时自动发布）；
              	2、在第一个demo中选择一个流程定义，点击发起流程；
              	3、在第二个demo中选择一个流程实例，点击流程追踪；
              	4、在第三个demo中选择一个任务，输入办理人UserId、办理意见，点击办理任务
              	<br/>
              <strong>注 意 事 项：</strong>详见开发手册及代码
            </div>
             <table class="hgtable">
                <tr>
                	<td width="20px"></td>
                	<td width="150px">1、选择一个流程：</td>
                	<td width="400px">
                        <select id="workflow_demo_def" style="width:350px">
                        	<c:if test="${defList != null }">
	                        	<c:forEach var="def" items="${defList }">
		                        	<option value="${def.key }">${def.name }-${def.key }</option>
	                        	</c:forEach>
                        	</c:if>
                        </select>
                    </td>
                    <td width="100px">
                        <a class="easyui-linkbutton" onclick="startProcessByKey()">发起流程</a>
                    </td>
                </tr>
             </table>

			<table class="hgtable">
				<tr>
					<td width="20px"></td>
					<td width="150px">2、选择一个流程实例：</td>
					<td width="400px">
						<select id="workflow_demo_pi" style="width: 350px">
							<c:if test="${piList != null }">
								<c:forEach var="pi" items="${piList }">
									<option value="${pi.processInstanceId }">${pi.processInstanceId }-${pi.processDefinitionKey }</option>
								</c:forEach>
							</c:if>
						</select>
					</td>
					<td width="100px"><a class="easyui-linkbutton"
						onclick="processTrace()">流程追踪</a></td>
				</tr>
			</table>
			<table class="hgtable">
				<tr>
					<td width="20px" rowspan="3"></td>
					<td width="150px" rowspan="3">3、选择一个任务：</td>
					<td width="400px">
						<select id="workflow_demo_task" style="width: 350px">
							<c:if test="${taskList != null }">
								<c:forEach var="task" items="${taskList }">
									<option value="${task.id }">${task.name }-${task.processDefinitionId }</option>
								</c:forEach>
							</c:if>
						</select>
					</td>
					<td width="100px" rowspan="3"><a class="easyui-linkbutton"
						onclick="doTask()">办理任务</a></td>
				</tr>
				<tr>
					<td>
						办理人userId：<input type="text" id="taskAssignee" size="10">
						办理意见：<input type="text" id="taskComment" size="10">
					</td>
				</tr>
			</table>
		</div>
    </div>
	<script type="text/javascript">
		function startProcessByKey(type, button) {
	        var _defKey = $("#workflow_demo_def").val();
	        if (_defKey){
		        HgUtil.post("/common/demo/workflow/startProcessByKey", {
			        defKey: _defKey
		        }, function(data) {
			        if (data.success){
				        HgUi.ok("发起流程成功！", function() {
				        });
			        }
			        else{
				        HgUi.error("发起流程失败！" + data.data, function() {
				        });
			        }
		        });
	        } else {
		        alert("请先通过hbpm-admin或项目发布流程定义 ，然后在此demo中选择一个流程，点击发起流程");
	        }
        }
		function processTrace() {
			var _piId = $("#workflow_demo_pi").val();
			if (_piId) {
				HgUtil.processTraceView(_piId);
			} else {
				alert("请先通过第一个demo发起流程 ，然后在此demo中选择一个流程实例，点击流程追踪");
			}
		}
		function doTask() {
			var _taskId = $("#workflow_demo_task").val();
			if (_taskId) {
				HgUtil.post("/common/demo/workflow/doTask", {
					taskId: _taskId,
					taskAssignee:$("#taskAssignee").val(),
					taskComment:$("#taskComment").val()
		        }, function(data) {
			        if (data.success){
				        HgUi.ok("任务办理成功！", function() {
				        });
			        }
			        else{
				        HgUi.error("任务办理失败！" + data.data, function() {
				        });
			        }
		        });
			} else {
				alert("请先通过第一个demo发起流程 ，然后在此demo中选择一个任务，点击任务办理");
			}
		}
	</script>
</body>
</html>